import java.util.Scanner;
import java.util.*;
public class Main {
    /*给你一个长度为 n 的整数数组 nums 。
    一个数组的 代价 是它的 第一个 元素。比方说，[1,2,3] 的代价是 1 ，[3,4,1] 的代价是 3 。
    你需要将 nums 分成 3 个 连续且没有交集 的子数组。
    请你返回这些子数组的 最小 代价 总和 。*/
    public static int depart(int[] nums) {
        //nums的顺序不能变，即第一个数不变，只需从第二个数排序，即是最小结果
        Arrays.sort(nums,1,nums.length);
        return nums[0]+nums[1]+nums[2];
    }
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        int[] nums=new int[n];
        for(int i=0;i<n;i++){
            nums[i]=sc.nextInt();
        }
        int resultsum=depart(nums);
        System.out.println(resultsum);
    }
}